package com.dabai.iot.core.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * 物模型属性更新输入类
 *
 * @author kev1n
 */
@Data
public class ThingModelItemUpdate implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    @Schema(description = "主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    private long id;

    /**
     * 中文名称
     */
    @Schema(description = "中文名称")
    private String name;

    /**
     * 参数最小值，仅 number 类型生效
     */
    @Schema(description = "参数最小值，仅 number 类型生效")
    private String min;

    /**
     * 参数最大值，仅 number 类型生效
     */
    @Schema(description = "参数最大值，仅 number 类型生效")
    private String max;

    /**
     * 字符串长度，仅 text 类型生效
     */
    @Schema(description = "字符串长度，仅 text 类型生效")
    private Integer textLength;

    /**
     * 精度
     */
    @Schema(description = "精度")
    private Integer scale;

    /**
     * 单位描述
     */
    @Schema(description = "单位描述")
    private String unit;

    /**
     * 布尔值 ture 的描述
     */
    @Schema(description = "布尔值 ture 的描述")
    private String trueDesc;

    /**
     * 布尔值 false 的描述
     */
    @Schema(description = "布尔值 false 的描述")
    private String falseDesc;

    /**
     * 访问模式
     */
    @Schema(description = "访问模式")
    private String method;

    /**
     * 排序
     */
    @Schema(description = "排序")
    private Integer sort;

}
